package com.ruoyi.projects.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 森理订单对象 sl_order
 * 
 * @author yangz
 * @date 2024-10-23
 */
public class SlOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    private Long id;

    /** 会员id */
    @Excel(name = "会员id")
    private Long customId;
    private String customName;

    /** 订单流水号 */
    @Excel(name = "订单流水号")
    private String orderNo;

    /** 订单类型（0小程序预约单，1美团购买单，2抖音购买单） */
    @Excel(name = "订单类型", readConverterExp = "0=小程序预约单，1美团购买单，2抖音购买单")
    private String orderType;

    /** 订单状态（0未支付，1已支付，2待消费，3已关闭，4已退款，5服务中） */
    @Excel(name = "订单状态", readConverterExp = "0=未支付，1已支付，2待消费，3已关闭，4已退款，5服务中")
    private String orderStatus;

    /** 订单价格 */
    @Excel(name = "订单价格")
    private BigDecimal orderPrice;

    /** 订单开启时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单开启时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderStartTime;

    /** 订单结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderEndTime;

    /** 产品id */
    private Long productId;

    /** 产品名称 */
    private String productName;

    /** 服务次数 */
    private Integer serviceTimes;

    /** 剩余服务次数 */
    private Integer serviceLeftTimes;


    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Integer getServiceTimes() {
        return serviceTimes;
    }

    public void setServiceTimes(Integer serviceTimes) {
        this.serviceTimes = serviceTimes;
    }

    public Integer getServiceLeftTimes() {
        return serviceLeftTimes;
    }

    public void setServiceLeftTimes(Integer serviceLeftTimes) {
        this.serviceLeftTimes = serviceLeftTimes;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCustomId(Long customId) 
    {
        this.customId = customId;
    }

    public Long getCustomId() 
    {
        return customId;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setOrderType(String orderType) 
    {
        this.orderType = orderType;
    }

    public String getOrderType() 
    {
        return orderType;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }
    public void setOrderPrice(BigDecimal orderPrice) 
    {
        this.orderPrice = orderPrice;
    }

    public BigDecimal getOrderPrice() 
    {
        return orderPrice;
    }
    public void setOrderStartTime(Date orderStartTime) 
    {
        this.orderStartTime = orderStartTime;
    }

    public Date getOrderStartTime() 
    {
        return orderStartTime;
    }
    public void setOrderEndTime(Date orderEndTime) 
    {
        this.orderEndTime = orderEndTime;
    }

    public Date getOrderEndTime() 
    {
        return orderEndTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("customId", getCustomId())
            .append("orderNo", getOrderNo())
            .append("orderType", getOrderType())
            .append("orderStatus", getOrderStatus())
            .append("orderPrice", getOrderPrice())
            .append("orderStartTime", getOrderStartTime())
            .append("orderEndTime", getOrderEndTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
